/**
 * 享元模式
 * http://blog.csdn.net/ai92/article/details/224598 通过这个可以很好理解其定义：
 * 使用共享对象有效地支持大量细粒度的对象——注意"大量""细粒度"
 *
 * 其实用String来理解是最合适的
 *
 * flyweight：抽象享元角色，同时定义出对象的外部状态和内部状态的接口或者实现。
 *
 * concreteFlyweight： 具体享元
 *
 * FlyweightFactory：享元工厂，负责管理对象池和创建享元对象
 *
 */
package structure.flyweight;